package com.cx330;

public class Example09 {
    public static void main(String[] args) {
        int a = 1;
        a++;
        System.out.println("a = " + a); // a = 2
        ++a;
        System.out.println("a = " + a); // a = 3

        int b = 1;
        System.out.println("b++: " + b++); // b++: 1 先取b的值1，紧接着b自增1，即b = 2，然后将1与”“进行拼接输出
        System.out.println("b = " + b); // b = 2
        System.out.println("++b: " + ++b); // ++b: 3 b先自增1，即b = 3，紧接着取b的值3，然后将3与”“进行拼接输出
        System.out.println("b = " + b); // b = 3

        int c = 1;
        int d = c++ + ++c * c++;
        /*
        c++: 取c的值1，紧接着c自增1，即c = 2，然后用1进行后续的求和运算
        ++c: 先对c自增1，即c = 3，紧接着取c的值3，然后用3进行后续的乘法运算
        c++: 取c的值3，紧接着c自增1，即c = 4，然后用3进行后续的乘法运算
        先乘后加：3 * 3 + 1 = 10
         */
        System.out.println("c = " + c); // c = 4
        System.out.println("d = " + d); // d = 10

        int e = 1;
        e = ++e; // e先自增1，即e = 2，紧接着取e的值2，然后将2赋值给e，最后e = 2
        System.out.println("e = " + e); // e = 2
        e = e++; // 取e的值2，紧接着e自增1，即e = 3，然后将2赋值给e，最后e = 2
        System.out.println("e = " + e); // e = 2
        int f = e++; // 取e的值2，紧接着e自增1，即e = 3，然后将2赋值给f，最后e = 3，f = 2
        System.out.println("f = " + f); // f = 2
        System.out.println("e = " + e); // e = 3
    }
}
